/*
 * BotonServidor.cpp
 *
 *  Created on: 27/10/2012
 *      Author: Administrador
 */

#include "BotonServidor.h"
#include "../constantes.h"
#include <iostream>

using namespace std;

BotonServidor::BotonServidor(SDL_Rect box, SDL_Rect err){

	this->caja = box;
	this->error = err;
	this->fuente = TTF_OpenFont("C:/WINDOWS/Fonts/Arial.ttf", 10);
	SDL_Colour color = {0x00,0x00,0x00};
	this->color_texto = color;
	this->fondo = NULL;
}

void BotonServidor::setFondo(SDL_Surface* f){
	this->fondo = f;
}


void BotonServidor::dibujarMensaje(string msj){

	SDL_FillRect(this->fondo, &this->error, 0xFFFFFF);

    SDL_Surface* mensaje = NULL;

    mensaje = TTF_RenderText_Solid(this->fuente, msj.c_str(), this->color_texto);
    SDL_Rect tmp = this->error;
    tmp.x += 2;
    SDL_BlitSurface(mensaje, NULL, this->fondo, &tmp);
}

bool BotonServidor::esValido(string texto){

	bool flag = true;
	for (unsigned int i= 0; i< texto.length(); i++){
		if ((texto[i] == '0') || (texto[i] == '1') || (texto[i] == '2') || (texto[i] == '3') || (texto[i] == '4') || (texto[i] == '5') || (texto[i] == '6') || (texto[i] == '7') || (texto[i] == '8') || (texto[i] == '9') ){
		}else{
			flag = false;
		}
	}

	if (texto.length() == 0){
		flag = false;
	}
	return flag;
}

bool BotonServidor::escucharEventos(SDL_Event* evento, string textoPuerto, string textoJugadores, string opcion){

	if(evento->type == SDL_MOUSEBUTTONDOWN && evento->button.button == SDL_BUTTON_LEFT) {
	        int x = evento->button.x;
	        int y = evento->button.y;

	         if(x <= this->caja.w+this->caja.x && x >= this->caja.x && y <= this->caja.h +this->caja.y && y >= this->caja.y){
	        	 	 if (!this->esValido(textoPuerto) || !this->esValido(textoJugadores) || opcion==""){
	        	 		 if (!this->esValido(textoPuerto)){
	        	 			 this->dibujarMensaje("El puerto no es valido. Ingrese un puerto valido");
	        	 		 }else if (!this->esValido(textoJugadores)){
 		        	 		 this->dibujarMensaje("El numero de jugadores no es valido. Ingrese una cantidad valida");
	        	 		 }else{
	        	 			 this->dibujarMensaje("No fue ninguna opcion seleccionada");
	        	 		 }
	        	 		 return false;
	        	  	}
	        	 	else {
	        	 		 this->dibujarMensaje("El puerto es valido, y la opcion seleccionada es: " + opcion);
	        	 		 return true;
	        	 	}
	          }
	}
	return false;
}

BotonServidor::~BotonServidor(){

}
